プロセス
プロセスは、メッセージパッシングを通じて通信を行う能力を持っており、ネットワーク内でメッセージの受信と送信を行うことができます。さらに、プロセスは他のプロセスを新たにインスタンス化する能力も持ち、ネットワークの計算基盤を拡張します。このネットワーク内での動的なデータの伝達と相互作用の方法は「ホログラフィック状態」と呼ばれ、ネットワークの共有および永続的な状態を支えるものです。
aos
でプロセスを構築する際、handlers
を追加することができます。これらのハンドラは、Handlers.add
関数を呼び出し、「name」、「match」関数、および「handle」関数を渡すことで追加できます。
コアモジュールには、ハンドラ関数に注入されるヘルパーライブラリが含まれており、このライブラリはao
と呼ばれます。
{
env = {
Process = {
Id = "5WzR7rJCuqCKEq02WUPhTjwnzllLjGu6SA7qhYpcKRs",
Owner = "_r9LpP4FtClpsGX3TOohubyaeb0IQTZZMcxQ24tTsGo",
Tags = {...}
},
Module = {
Id = "UAUszdznoUPQvXRbrFuIIH6J0N_LnJ1h4Trej28UgrE",
Owner = "_r9LpP4FtClpsGX3TOohubyaeb0IQTZZMcxQ24tTsGo",
Tags = {..}
}
},
id = "5WzR7rJCuqCKEq02WUPhTjwnzllLjGu6SA7qhYpcKRs",
isTrusted = "function: 0x5468d0",
result = "function: 0x547120",
send = "function: 0x547618",
spawn = "function: 0x5468b0"
}
このao
ヘルパーで注目すべき主な関数は次のとおりです。
- ao.send(Message) - メッセージをプロセスに送信します
- ao.spawn(Module, Message) - 新しいプロセスを作成します
Ethereumで署名されたプロセスまたはモジュール
ao
のProcess
またはModule
において、ANS-104 DataItemがEthereumのキーを使用して署名された場合、
それぞれenv.Process.Owner
またはenv.Module.Owner
フィールドの値は、署名者のEIP-55準拠のEthereumアドレスになります。
例えば:0xfB6916095ca1df60bB79Ce92cE3Ea74c37c5d359
ao.send Example
ao.send({
Target = Chatroom,
Action = "Broadcast",
Data = "Hello from my Process!"
})
ao.spawn Example
ao.spawn(ao.env.Module.Id, {
["Memory-Limit"] = "500-mb",
["Compute-Limit"] = "900000000000000000"
})
ao.env
NOTE:
ao.env
is important context data that you may need as a developer creating processes.
The ao.env
property contains the Process
and Module
Reference Objects
env = {
Process = {
Id = "5WzR7rJCuqCKEq02WUPhTjwnzllLjGu6SA7qhYpcKRs",
Owner = "_r9LpP4FtClpsGX3TOohubyaeb0IQTZZMcxQ24tTsGo",
Tags = {...}
},
Module = {
Id = "UAUszdznoUPQvXRbrFuIIH6J0N_LnJ1h4Trej28UgrE",
Owner = "_r9LpP4FtClpsGX3TOohubyaeb0IQTZZMcxQ24tTsGo",
Tags = {..}
}
}
Process
とModule
の両方は、ao
データプロトコルの属性を含んでいます。
まとめ
ネットワーク内のプロセスは、メッセージパッシングを通じて通信し、新しいプロセスを作成することで、共有および永続的なデータの「ホログラフィック状態」に貢献します。開発者は、aos
を使用して特定のname、match、およびhandle関数を用いてHandlers.add
関数でハンドラを追加することでプロセスを構築できます。コアモジュール内のao
ヘルパーライブラリは、このプロセスを支援し、メッセージを送信するためのao.send
や、新しいモジュールを作成するためのao.spawn
、そして重要なao.env
プロパティを提供します。ao.env
には、プロセスとモジュールに関する重要な情報が含まれています。ao
データプロトコルは、これらの要素の構造と属性を定義しています。